/**
 * Author@ Cheng Feitian
 * Date: 2021-3-23
 * Description: 成员属性设置为私有的好处
 * 1.可以自己控制读写权限
 * 2.对于写权限，我们可以检测数据的有效性
 */

#include <algorithm>
#include <iostream>
#include <string>

using namespace std;
const int maxn = 1024;

class Person {
public:
    string getName(){
        return m_Name;
    }
    void setName(string name){
        m_Name = name;
    }

    int getAge(){
        // m_Age = 0;  //初始化
        return m_Age;
    }

    void setAge(int age){
        if(age <= 0 || age >= 150){
            age = 0;
            cout << "你这个老妖精!" << endl;
            return;
        }
        m_Age = age;
    }

    void setLover(string lover){
        m_Lover = lover;
    }

private:
    string m_Name;      //姓名 可读可写

    int m_Age;          //年龄 只读

    string m_Lover;     //情人 只写
};

int main() {

    Person p;
    p.setName("张三");
    
    cout << "姓名：" << p.getName() << endl;
    p.setAge(10);
    cout << "年龄：" << p.getAge() << endl;
    //设置情人为苍井空女士
    p.setLover("苍井空");
	//cout << "情人： " << p.m_Lover << endl;  //只写属性，不可以读取

    return 0;
}
